home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / sos3-2.lha / src / cfe / cfe.h < prev    next >
C/C++ Source or Header  |  1992-01-23  |  3KB  |  72 lines

  1. /* --------------------------------------------------------------------------
  2.  * Copyright 1992 by Forschungszentrum Informatik (FZI)
  3.  *
  4.  * You can use and distribute this software under the terms of the licence
  5.  * you should have received along with this program.
  6.  * If not or if you want additional information, write to
  7.  * Forschungszentrum Informatik, "STONE", Haid-und-Neu-Strasse 10-14,
  8.  * D-7500 Karlsruhe 1, Germany.
  9.  * --------------------------------------------------------------------------
  10.  */
  11. #include "mta_sos.h"
  12.  
  13. /* Compile a sequence of schema modules:
  14.    - check for syntactic and semantic correctness
  15.    - enter each module sos_Into a container
  16.    This job is done by the function `cfe_compile'. The remaining functions
  17.    perform auxiliary operations for the semantic analysis; they are called
  18.    from the yacc parser (see cfe_yacc.s).
  19. */
  20.  
  21. // compilation state
  22. extern sos_Schema_module        cfe_schema;
  23. extern sos_Type_table        cfe_type_tab;
  24. extern sos_Schema_type_List     cfe_types;
  25. extern sos_Container        cfe_cnt;
  26.  
  27. // schema compiler
  28. extern void cfe_compile ();
  29.  
  30. // schema handling
  31. extern void cfe_init (sos_String name, sos_Imports);
  32. extern void cfe_import_module (sos_Imports, sos_String);
  33. extern void cfe_check_schema ();
  34. extern void cfe_finalize ();
  35.  
  36. // class handling
  37. extern void cfe_check_super_classes (sos_Class_type,
  38.                      sos_Type_name_List);
  39. extern void cfe_set_super_closure (sos_Class_type);
  40. extern void cfe_set_offsets_and_size (sos_Class_type, sos_Int offset);
  41. extern void cfe_set_inherited_methods (sos_Class_type);
  42. extern void cfe_set_root_name (sos_Class_type);
  43.  
  44. // method handling
  45. extern void cfe_init_methods (sos_Class_type);
  46. extern void cfe_complete_methods (sos_Class_type);
  47. extern void cfe_append_comp_methods
  48.         (sos_Class_type, sos_Type_name, sos_String, sos_Expr,
  49.          sos_Method_kind kind, sos_Method_kind set_kind,
  50.          sos_Bool is_value, sos_Bool is_local,
  51.          sos_Int &offset);
  52. extern void cfe_append_method (sos_Class_type, sos_Method);
  53.  
  54. // other type handling
  55. extern sos_Type_name cfe_lookup_generic_instantiation
  56.              (sos_String, sos_Type_name_List, sos_Schema_type_List);
  57. extern void cfe_check_generic_instantiations (sos_Type_name_List);
  58. extern sos_Gen_param cfe_lookup_gen_params (sos_String, sos_Gen_param_List);
  59. extern sos_Type_name cfe_lookup_type_name (sos_Class_type, sos_String);
  60. extern sos_Type cfe_lookup_types (sos_String, sos_Type_table);
  61. extern void cfe_check_type (sos_String);
  62. extern void cfe_make_class_type (sos_String, sos_Class_type);
  63. extern void cfe_check_no_generic (sos_Type_name);
  64. extern sos_Int cfe_enum_size (sos_Int nr_literals);
  65.  
  66. // general
  67. extern sos_Int  cfe_echo_flag;
  68. extern void cfe_error (err_class ec, err_msg s, char *where = 0);
  69.  
  70. // predefined types
  71. extern sos_Schema_type cfe_get_object_type();
  72.